<?php
/**
 * Validierungsklasse zur Parametervalidierung
 *
 * @author		Joachim Ruf
 * @copyright	Copyright (c) 2003-2013 Loresoft Software (http://www.loresoft.de)
 * @license		http://yapary.loresoft.de/lizenzbedingungen     New BSD License
 *
 * */


/**
 * $val muss einer Email-Adresse entsprechen.
 * Da Umlautdomains und Umlaute in der Email vermieden werden sollten, verbietet die Prufroutine diese
 * mit vorgegebener Oberen Zeichenlaenge
 * */
Class Yapary_Parameter_CheckEmail Extends Yapary_Exception_Error Implements Yapary_Parameter_ICheck
{
	private $max;
	function __construct ( $_maxLength = NULL )
	{
		$this->max = $_maxLength;
	}


	public function typedef ( $val )
	{
		return (string) $val;
	}


	public function getPattern ()
	{
		return '^[a-z0-9_-]+([\.]?[a-z0-9_-])+@[a-z0-9-]+([\.]?[a-z0-9-])+(\.[a-z]{2,10}){1,2}$';
	}


	public function isValid ( $val )
	{
		if (!isset($val)) {
			$this->addError(Yapary_Exception_Error::E_UNDEFINED);
			return false;
		}
		if ($this->max != NULL && strlen($val) > $this->max) {
			$this->addError(Yapary_Exception_Error::E_OUT_OF_SIZE);
			return false;
		}
		if (!preg_match('/'.$this->getPattern().'/i', $val) ) {
			$this->addError(Yapary_Exception_Error::E_WRONG_FORMAT);
			return false;
		}

		return true;
	}
}
